package cn.stylefeng.guns.sys.modular.system.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.sys.modular.system.entity.BtyPerformancePoint;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyPerformanceMonthInformationParam;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyPerformancePointParam;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyPerformanceReceiveParam;
import cn.stylefeng.guns.sys.modular.system.model.result.BtyPerformanceMonthInformationResult;
import cn.stylefeng.guns.sys.modular.system.model.result.BtyPerformancePointResult;
import cn.stylefeng.guns.sys.modular.system.model.result.BtyPerformanceSelectResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wjk
 * @since 2022-02-10
 */
public interface BtyPerformancePointService extends IService<BtyPerformancePoint> {

    /**
     * 新增
     *
     * @author wjk
     * @Date 2022-02-10
     */
    void add(BtyPerformancePointParam param);

    /**
     * 删除
     *
     * @author wjk
     * @Date 2022-02-10
     */
    void delete(BtyPerformancePointParam param);

    /**
     * 更新
     *
     * @author wjk
     * @Date 2022-02-10
     */
    void update(BtyPerformancePointParam param);

    /**
     * 查询单条数据，Specification模式
     *
     * @author wjk
     * @Date 2022-02-10
     */
    BtyPerformancePointResult findBySpec(BtyPerformancePointParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author wjk
     * @Date 2022-02-10
     */
    List<BtyPerformancePointResult> findListBySpec(BtyPerformancePointParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author wjk
     * @Date 2022-02-10
     */
     LayuiPageInfo findPageBySpec(BtyPerformancePointParam param);

    /**
     * 3.4.13督导或大店长或营运经理根据手机号，月份查询名下所有的门店信息及级别
     *
     * @author ws
     * @Date 2022-02-10
     */
    LayuiPageInfo findPageByAccountTime(String account, BtyPerformanceReceiveParam param);

    Map<String, String> getAttendMonth();






    /**
     * 13  查看总驳回原因
     *
     * @author wjk
     * @Date 2022-04-07
     */
    BtyPerformanceMonthInformationResult tddgetDismissedTotal(String account, BtyPerformanceMonthInformationParam param);
    /**
     * 15 运营经理查看 门店总数，可做绩效 的门店数量
     *
     * @author wjk
     * @Date 2022-04-06
     */
    Map<String, String> tYyjlgetShopSumMonth(String account, BtyPerformanceReceiveParam param);

    /**
     * 16 运营经理，待审核，已驳回，已通过的店列表
     *
     * @author wjk
     * @Date 2022-04-06
     */
    LayuiPageInfo tyyjlgetShopStateListPage(String account, BtyPerformanceReceiveParam param);

    /**
     * 17 运营经理查询下属的督导列表,不分页全部
     * @author wjk
     * @Date 2022-04-06
     */
    List<BtyPerformanceSelectResult> tyyjlgetHisDyList(String account);

}
